package com.powergame.main;

import com.powergame.model.Secteur;
import java.awt.Point;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * MapCreator.java
 *
 * Classe utilitaire pour creer des carte rapidement 
 *
 * @author ToF
 */
public class MapCreator {
    
    private List<Secteur> secteurs = null;
    
    private Secteur current = null;
    
    private Iterator<Secteur> it = null;
    
    public MapCreator(List<Secteur> secteurs){
        this.secteurs = secteurs;
        
        it = secteurs.iterator();
        nextSecteur();
    }
    
    public void nextSecteur(){
        if(it.hasNext()){
            current = it.next();
        }else{
            current = null;
        }
    }
    
    public Secteur current(){
        return current;
    }
    
    public void point(Point p){
        if(current != null){
            current.getPolygone().addPoint(p.x, p.y);
        }
    }
    
    public File writeXML(String file) throws IOException{
        File f = new File(file);
        FileWriter fw = new FileWriter(f);
        
        for(Secteur s : secteurs){
            fw.write("<secteur id=\"" + s.getId() + "\" type=\"" + s.getType().getLibelle() + "\" equipe=\"" + s.getEquipe().getLibelle() + "\">\n");
            fw.write("    <polygone>\n");
            for(int i = 0; i < s.getPolygone().npoints; i++){
                fw.write("    <point x=\"" + s.getPolygone().xpoints[i] + "\" y=\"" + s.getPolygone().ypoints[i] + "\" />\n");
            }
            fw.write("    </polygone>\n");
            fw.write("</secteur>\n");
        }
        
        fw.close();
        
        return f;
    }
}
